#include <iostream>
#include <string>
#include <queue>
#include <vector>
#include <algorithm>
using namespace std;
class A
{
public:
	void func(int val = 1)
	{
		cout << "A->" << val << endl;
	}
	virtual void test()
	{
		func();
	}
};
class B : public A
{
public:
	void func(int val = 0)
	{
		cout << "B->" << val << endl;
	}
    virtual void test()
	{
		func();
	}
};
// int main()
// {
// 	float f = 3.14;
// 	string str = to_string(f);
// 	std::cout << str << std::endl;
// 	float ret = stof(str);
// 	std::cout << ret << std::endl;

// 	return 0;
// }

// int main()
// {

// 	auto cmp = [](const int& a, const int& b) { return a > b; };
// 	vector<int> foo{3, 1, 5, 2, 4};
//     // 使用 decltype 推导 Lambda 类型，并定义 priority_queue 对象
//     std::priority_queue<int, std::vector<int>, decltype(cmp)> pq(foo.begin(), foo.end(),cmp);
// 	std::sort(foo.begin(), foo.end(), cmp);
// 	while (!pq.empty()) {
//         std::cout << pq.top() << " "; // 输出 4 3 1 1
//         pq.pop();
//     }
// 	cout << endl;

// 	for(auto e : foo)
// 	{
// 		cout << e << " ";
// 	}
// 	cout << endl;
// 	// int a = 10, b = 20;
// 	// decltype([](int& x, int& y)
// 	// {
// 	// 	int tmp = x;
// 	// 	x = y;
// 	// 	y = tmp;
// 	// };) cmp;
// 	// cmp(a, b); //交换a和b
// 	return 0;
// }

int main()
{
	volatile const int a = 2;
	int* p = const_cast<int*>(&a);
	*p = 3;
	cout << a << endl;  //2
	cout << *p << endl; //3
	return 0;
}


